论文:Vulnus: Visual Vulnerability Analysis for Network Security

作者:Marco Angelini, Graziano Blasilli, Tiziana Catarci, Simone Lenti, Giuseppe Santucci

发表:IEEE TVCG 2018

研究背景

1. 软件漏洞

根据 NIST(美国国家标准与技术研究所)给出的定义,软件漏洞是指在软件和硬件组件中发现的计算逻辑(如代码)的弱点,当被利用时,会对信息系统的机密性、完整性或可用性产生负面影响。

而安全管理员这一职业通常需要处理大规模的漏洞,并且决定处理措施,具有很大的挑战性。

图片1

2. CVE & CVSS

2.1 CVE(Common Vulnerabilities & Exposures) 公共漏洞与暴露

CVE 是一个漏洞库,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称,如果有 CVE 名称,你就可以快速地在任何其它 CVE 兼容的数据库中找到相应修补的信息,解决安全问题。

图片2

2.2 CVSS(Common Vulnerability Score System) 通用漏洞评分系统

CVSS 的主要目的是帮助人们建立衡量漏洞严重程度的标准,使得人们可以比较漏洞的严重程度,从而确定处理它们的优先级。 分数为 0 到 10,一般 7-10 的漏洞被认为比较严重。包括以下几个组成部分:

a. Base score:由 Exploitability(可执行性)与 Impact (影响程度)度量
b. Temporal score:反应漏洞随时间推移的影响,不受环境影响
c. Environmental score:特定环境下执行漏洞的分数

并由以上三个层面组成一个 Overall score,其中 Base score 由专业的分析人员给出,Temporal score 和 Environmental score 可根据具体的商业环境来选择。

相关工作

多数的网络安全工具提供的漏洞可视化信息都是有限的,如常见的 CheckPoint NGSE, Imperva SecureSphere, IBM QRadar, RSA enVision 等,它们都用表格的形式来处理漏洞,或者是用非常简单的基础图表(如柱状图、饼图),不支持适合操作大规模网络的抽象可视化形式。如下图的 IBM QRadar:

图片3

或者是如 VisiTrend,虽然用了丰富的可视化手段来呈现网络拓扑结构,但是忽略了一些重要的参数信息,比如 CVSS 里的可利用性分数(Exploitability score)等:

图片4

本文工作

提出了 VULNUS — 一个探索系统漏洞的可视化环境,用类似于 treemap+barchart 的可视化形式来展现了子网络、网络节点、节点漏洞等信息。

1. 主要贡献

a. 一种改进的 Treemap+barchart 可视化形式,集成了多个面板和过滤机制,帮助理解跨多个子网络的大规模漏洞。
b. 一个自动计算的分数机制(Target Environmental Score),弥补了 CVSS 的不足。
c. 假设分析机制允许用户进行交互式地探索和修改漏洞修复的优先级。
d. 一项通过实验测试评估出本文所提出解决方案的有效性和效率的 User Study。

2. 设计需求

a. 监管:对环境的全局状态的掌控、快速地发现存在风险的区域
b. 分析:基于节点、漏洞或度量准则
c. 假设分析:支持对系统提供的修复计划进行模拟

3. 界面设计

图片5

A. Network focus view
B. Node based view
C. Vulnerability based view
D. Fixing plan view

3.1 可视化编码

图片6

每个水平放置的 Bar 代表一个子网络,宽度与该网络的漏洞数成正比;多个子网络的组合可看作一个水平的 Barchart;一个子网络可看作一个 Treemap,每个叶节点代表一个网络节点。

图片7

对于叶节点,其大小编码了漏洞数量,A 的高度编码 Base score 的平均值,B 的深浅编码了 Environmental score 的最大值,C 反映了 Exploitability score 的分布,左上角的三角形用不同的颜色表示其为 Source node 或 Target node,E 的箭头表示在上一次扫描后 Environmental score 的变化。

3.2 视图切换

本系统除上文介绍到的子网络视图外,还支持另外三种视图

a. Sub-network View 子网络视图
b. Score View 分数视图
c. Network View 网络视图
d. Vulnerabilities View 漏洞视图

其中,分数视图的网络节点按照 Base score 的分数段分组:

图片8

Network View 的整个网络用一个 Treemap 表示,每个叶节点表示一个子网络:

图片9

Vulnerabilities View 中的每个元素代表一个漏洞,元素的大小代表有这个漏洞的 IP 地址的数量:

图片10

4. 假设分析

4.1 概念介绍

Attack path:一组可通过已知漏洞加以利用的节点序列

Attack graph:所有计算出的攻击路径的并集

图片12

4.2 Target Environmental Score

Vulnus 没有使用 CVSS 中的 environmental score,而是基于 attack path 的 environmental score(Target Environmental Score)

计算方式:该漏洞被的 ap 数量占所有 ap 数量的比例

4.3 漏洞修复优先级计算

要找到最优解决方案是一个 Set cover(集合覆盖)问题,最小化子集的数量,也就是最小化需要修复的漏洞数,这是一个 NPC 问题,可以用贪婪算法找到近似最优解,也就是在一步都选择包含最多还未被包含的 Attack paths。

User study

1. 被试

20 个计算机安全专家,均有 2 年以上经验,其中包括 5 PhD, 7 Master, 5 Bachelor degree, 3 High school degree(4 female and 16 male)。

2. 真实网络数据

122 个节点、22 个子网络、846 个漏洞

3. 实验流程

a. 在实验开始前,通过一个 ppt 介绍背景以及系统操作(30-40 mins)
b. 被试进行 training,熟悉界面及操作(20 mins)
c. 被试进入正式实验,通过交互完成 6 组 task(17 个 question)

总结与未来工作

  1. 总结

    a. 本文将 CVSS 与 attack graph model 结合起来,帮助网络安全分析人员更好地分析漏洞
    b. 自动计算近似最优解决方案
    c. 假设分析使得用户在不把解决方案应用到实际环境的情况下就可以探索其效果

  2. 未来工作

    a. 继续改进可视化编码形式
    b. 增加其通用性,尝试应用在来自不同领域的多元数据上(如医疗或金融数据)



Questions & Discussion: ✉️ zhoushuyue@zju.edu.cn